1. Field
The present disclosure relates to computer-generated animation and, more specifically, to performing search-based matching of multiple parameter sets to define an object's position and/or rotation in computer-generated animation.
2. Related Art
A computer-generated animation can include a series of computer-generated images in which one or more computer-generated objects are rendered at various positions and/or poses that change between images to mimic object movement. An appendage object, e.g., an arm, a leg, a tail, a foot, a hand, and the like, can be particularly challenging to create realistic positions and/or poses because the appendage's joints have several degrees of freedom to manipulate. As a result, users have generally applied forward and inverse kinematics to model and create the appendage's movements.
Forward kinematics (FK) can define what the exact location and/or rotation of each appendage joint should be. FK can generally be used to set a particular pose of the appendage. Inverse kinematics (IK) can define a goal or destination of the appendage, e.g., the appendage should touch another object, and then calculate the location and/or rotation required for each appendage joint to reach that goal or destination. IK can generally be used to set a particular goal for the appendage.
Often, users need to switch between FK and IK during the course of the animation to position and/or pose the appendage. However, because FK and IK define different locations and/or rotations for the same appendage joint, a switch between them can result in an abrupt change in the joint's location and/or rotation that is visually unrealistic. As a result, users have developed algorithms to match the FK and IK locations and/or rotations just prior to the switch so that the switch is visually smooth.
However, because appendages are different, each appendage type requires a specific matching algorithm. For example, an arm requires an arm matching algorithm; a leg, a leg matching algorithm; a tail, a tail matching algorithm; and so on. This has resulted in a large number and variety of matching algorithms. Moreover, maintaining such a large number can be time and labor intensive. Furthermore, a user has to understand each matching algorithm, the associated appendage type, and which degrees of freedom to manipulate in that algorithm in order to match FK and IK.
Accordingly, there is a need to provide an effective way to match different types of appendages.